﻿

using VIA.Project.Domain.Services;
namespace VIA.Project.Template
{
           
       public class StopTemplate
       {
          public string GetReasonDesc(int data)
            {
                switch (data)
                {
                                        case 0:
                    return "正常停止";
                                        case 1:
                    return "ALM 立即停止";
                                        case 2:
                    return "ALM 减速停止";
                                        case 3:
                    return "LTC 外部触发立即停止";
                                        case 4:
                    return "EMG 立即停止";
                                        case 5:
                    return "正硬限位立即停止";
                                        case 6:
                    return "负硬限位立即停止";
                                        case 7:
                    return "正硬限位减速停止";
                                        case 8:
                    return "负硬限位减速停止";
                                        case 9:
                    return "正软限位立即停止";
                                        case 10:
                    return "负软限位立即停止";
                                        case 11:
                    return "正软限位减速停止";
                                        case 12:
                    return "负软限位减速停止";
                                        case 13:
                    return "命令立即停止";
                                        case 14:
                    return "命令减速停止";
                                        case 15:
                    return "其它轴引起的立即停止";
                                        case 16:
                    return "其它轴引起的减速停止";
                                        case 17:
                    return "模拟量超限，触发急停";
                                        case 18:
                    return "保留";
                                        case 19:
                    return "DSTP 信号引起的减速停止";
                                        case 20:
                    return "前瞻预处理和速度规划来不及，底层自动调用 stoplist";
                                        case 21:
                    return "原点不在两个限位之间停止";
                                        case 22:
                    return "回零方向和当前有效限位端相反（正限位有效时，回零方向为负方向；负限位有效时，回零方向为正方向）";
                                        case 23:
                    return "正负限位同时有效";
                                        case 24:
                    return "没有找到 EZ 信号";
                                        case 25:
                    return "回零位置溢出停止";
                                        case 26:
                    return "动加速度过大，异常停止";
                                        case 27:
                    return "双原点停止";
                                        case 28:
                    return "区域限位立即停止";
                                        case 29:
                    return "区域限位减速停止";
                                        case 30:
                    return "龙门超差保护减速停止";
                                        case 31:
                    return "龙门超差保护立即停止";
                                        case 32:
                    return "插补规划错误停止";
                                        case 33:
                    return "单轴跟踪误差保护立即停止";
                                        case 34:
                    return "单轴跟踪误差保护减速停止";
                                        case 35:
                    return "插补缓冲区错误停止";
                                        case 36:
                    return "龙门主从轴超差保护立即停止";
                                        case 37:
                    return "龙门主从轴超差保护减速停止";
                                        case 38:
                    return "轴输出脉冲频率超过 4M";
                                        case 39:
                    return "IO 触发立即停止";
                                        case 40:
                    return "IO 触发减速停止";
                                        case 49:
                    return "看门狗超时";
                                        case 50:
                    return "两轴碰撞检测立即停止";
                                        case 51:
                    return "两轴碰撞检测减速停止";
                                        case 52:
                    return "龙门从轴 alm 引起主轴立即停止";
                                        case 53:
                    return "从轴开始启动时主轴绝对位置错误（不在主轴运动方向上）";
                                        case 54:
                    return "同步时主轴绝对位置错误（不在主轴运动方向上）";
                                        case 55:
                    return "从轴开始运动位置大于同步时主轴绝对位置错误";
                                        case 56:
                    return "同步时从轴绝对位置（不在从轴运动方向上）";
                                        case 57:
                    return "不支持主轴运动模式（仅支持跟随主轴做定长和定速运动模式）";
                                        case 58:
                    return "从轴追赶目标速度小于同步时从轴的速度";
                                        case 59:
                    return "从轴同步位置过小，不足以从轴从当前速度直接加速或减速至同步速度";
                                        case 60:
                    return "初始化时主轴运动方向错误(运动速度为零)";
                                        case 61:
                    return "从轴开始运动时主轴未达到匀速状态";
                                        case 62:
                    return "GearInPos 实际加速度大于设置的最大加速度";
                                        case 63:
                    return "GearInPos 实际减速度大于设置的最大减速度";
                                        case 64:
                    return "从轴追赶实际可达速度大于追赶设置的最大目标速度";
                                        case 65:
                    return "从轴同步速度在只有加速或减速过程也不可达速度";
                                        case 66:
                    return "二分法求取合适的可达速度，迭代次数超过限制次数让无法找到合适的速度值";
                                        case 67:
                    return "主轴 pmove 目标位置小于主轴同步位置";
                                        case 68:
                    return "主轴 pmove 目标位置小于从轴开始运动时的主轴位置";
                                        case 69:
                    return "从轴追赶过程加速周期或减速周期为 0，有可能主轴同步位置和从轴开始运动时的主轴位置相隔太近";
                                        case 70:
                    return "主轴目标速度为零";
                                        case 71:
                    return "从轴实际可达速度大于追赶速度时，重算以追赶速度为目标速度的匀速周期数小于等于零";
                                        case 72:
                    return "GearInPos 主轴位移与规划结果不一致";
                                        case 73:
                    return "GearInPos 主轴 vmove 减速阶段不支持";
                                        case 74:
                    return "从轴起始反向运动方向模式错误(1~4)";
                                        case 75:
                    return "从轴起始反向运动加速度为零";
                                        case 76:
                    return "连续轨迹等待外部 io 输入信号有效超时，停止插补系运动";
                                        case 201:
                    return "正负限位之间全程没找到原点信号";
                                        case 202:
                    return "回零方向不匹配";
                                        case 203:
                    return "正负限位同时有效";
                                        case 204:
                    return "正负限位之间全程没有 EZ 信号";
                                        case 205:
                    return "位置溢出";
                                        case 206:
                    return "双原点错误";
                                        case 207:
                    return "外部信号触发回零停止";
                                        case 208:
                    return "驱动器回零被中断停止";
                                        default:
                      return "未定义停止代码";
                }
            }
      }
}
      